%%=====================================================================================
%%
%%         File:  bash-support.tex
%%
%%  Description:  bash-support.vim : Key mappings for Vim without GUI.
%%                
%%       Author:  Dr.-Ing. Fritz Mehner
%%        Email:  mehner@fh-swf.de
%%    Copyright:  Copyright (C)  2003-2008  Dr.-Ing. Fritz Mehner  (mehner@fh-swf.de)
%%      Version:  see PluginVersion (below)
%%     Revision:  $Id: bash-hot-keys.tex,v 1.18 2009/07/22 10:59:45 mehner Exp $
%%      Created:  09.06.2003
%%                
%%        Notes:  
%%                
%%=====================================================================================

\newcommand{\PluginVersion}{2.13}
\newcommand{\ReleaseDate}{ July 2009}

\documentclass[oneside,12pt,a4paper,DIV18]{scrartcl}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{times}

\setlength\parindent{0pt}
\usepackage{fancyhdr}
\usepackage{lastpage}

%%----------------------------------------------------------------------
%%  luximono : Type1-font
%%  Makes keyword stand out by using semibold letters.
%%----------------------------------------------------------------------
\usepackage[scaled]{luximono}

%%----------------------------------------------------------------------
%%  fancyhdr
%%----------------------------------------------------------------------
\pagestyle{fancyplain}
\fancyhf{}
\fancyhead[C]{\scriptsize }
\fancyfoot[R]{\small \textbf{Page \thepage{} / \pageref{LastPage}}}
\renewcommand{\headrulewidth}{0.0pt}

%%----------------------------------------------------------------------
%%  hyperref
%%----------------------------------------------------------------------
\usepackage[ps2pdf]{hyperref}
\hypersetup{pdfauthor={Dr.-Ing. Fritz Mehner, FH Südwestfalen, Iserlohn, Germany}}
\hypersetup{pdfkeywords={Vim, Bash}}
\hypersetup{pdfsubject={Vim-plugin,  bash-support.vim, hot keys}}
\hypersetup{pdftitle={Vim-plugin,  bash-support.vim, hot keys}}

\twocolumn

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  START OF DOCUMENT
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

%%======================================================================
%%  title
%%======================================================================
\begin{center}
\textbf{\textsc{\small{Vim-Plugin}}}\\
\textbf{\large{bash-support.vim}}\\
\textbf{\textsc{\small{Version \PluginVersion}}}\\
\vspace{5mm}%
\textbf{\textsc{\huge{Hot keys}}}\\ 
\vspace{5mm}%
\footnotesize{Key mappings for Vim without GUI.}\\
\vspace{1mm}%
\footnotesize{
All mappings are only defined for buffers\\
with filetype \texttt{sh} (exceptions: \verb'\lbs',  \verb'\ubs').\\
All mappings also work for gVim.}\\ 
\vspace{1mm}%
\footnotesize{Plugin: http://vim.sourceforge.net}\\
\footnotesize{Fritz Mehner (mehner@fh-swf.de)}\\
\footnotesize{\ReleaseDate}\\
\vspace{3.5mm}
\small
%%======================================================================
%%  table, left part
%%======================================================================
%%~~~~~ TABULAR : begin ~~~~~~~~~~
\begin{tabular}[]{|p{11mm}|p{59mm}|}
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{C}omments}} \\
\hline \verb'\cl'  & end-of-line comment              \hfill (n, i, v) \\
\hline \verb'\cj'  & adjust end-of-line comments      \hfill (n, i, v) \\
\hline \verb'\cs'  & set end-of-line comment column   \hfill (n) \\
\hline \verb'\cfr' & frame comment                    \hfill (n, i) \\
\hline \verb'\cfu' & function description             \hfill (n, i) \\
\hline \verb'\ch'  & file header                      \hfill (n, i) \\
\hline \verb'\ckb' & keyword \verb'BUG    '           \hfill (n, i) \\
\hline \verb'\ckt' & keyword \verb'TODO   '           \hfill (n, i) \\
\hline \verb'\ckr' & keyword \verb'TRICKY '           \hfill (n, i) \\
\hline \verb'\ckw' & keyword \verb'WARNING'           \hfill (n, i) \\
\hline \verb'\ckn' & keyword: new keyword             \hfill (n, i) \\
\hline \verb'\cc'  & toggle comment                   \hfill (n, i, v) \\
\hline \verb'\cd'  & date                             \hfill (n, i) \\
\hline \verb'\ct'  & date \& time                     \hfill (n, i) \\
\hline \verb'\ce'  & \verb'echo "<line>"'             \hfill (n, i) \\
\hline \verb'\cr'  & remove \verb'echo'               \hfill (n, i) \\
\hline \verb'\cv'  & vim modeline                     \hfill (n, i) \\
\hline 
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{S}tatements}} \\
\hline \verb'\sc'  & \verb'case in ... esac'            \hfill (n, i) \\
\hline \verb'\sl'  & \verb'elif then'                   \hfill (n, i) \\
\hline \verb'\sf'  & \verb'for in do done'              \hfill (n, i, v)\\
\hline \verb'\sfo' & \verb'for ((...)) do done'         \hfill (n, i, v)\\
\hline \verb'\si'  & \verb'if then fi'                  \hfill (n, i, v)\\
\hline \verb'\sie' & \verb'if then else fi'             \hfill (n, i, v)\\
\hline \verb'\ss'  & \verb'select in do done'           \hfill (n, i, v)\\
\hline \verb'\st'  & \verb'until do done'               \hfill (n, i, v)\\
\hline \verb'\sw'  & \verb'while do done'               \hfill (n, i, v)\\
\hline \verb'\sfu' & \verb'function'                    \hfill (n, i, v)\\
\hline \verb'\se'  & \verb'echo -e "\n"'                \hfill (n, i, v)\\
\hline \verb'\sp'  & \verb'printf  "\n"'                \hfill (n, i, v)\\
\hline \verb'\sa'  & array element\ \ \ \verb'${.[.]}'  \hfill (n, i, v)\\
\hline \verb'\sas' & array elements \ \verb'${.[@]}'    \hfill (n, i, v)\\
\hline
\end{tabular} \\
%%~~~~~ TABULAR :  end  ~~~~~~~~~~
\begin{flushleft}
{\small
{\normalsize (i)} insert mode, {\normalsize (n)} normal mode, {\normalsize (v)} visual mode
}%
\end{flushleft}

\newpage 
%%======================================================================
%%  table, right part
%%======================================================================
%%~~~~~ TABULAR : begin ~~~~~~~~~~
\begin{tabular}[]{l}
   \\ [14.3ex]								%% offset
\end{tabular} \\ 
%%~~~~~ TABULAR :  end  ~~~~~~~~~~
%%~~~~~ TABULAR : begin ~~~~~~~~~~
\begin{tabular}[]{|p{11mm}|p{59mm}|}
%%----------------------------------------------------------------------
%%  menu Posix character classes
%%----------------------------------------------------------------------
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{P}OSIX Character Classes}}\\
\hline \verb'\pa' &  \verb'[:alnum:] '         \hfill (n, i)   \\
\hline \verb'\ph' &  \verb'[:alpha:] '         \hfill (n, i)   \\
\hline \verb'\pi' &  \verb'[:ascii:] '         \hfill (n, i)   \\
\hline \verb'\pb' &  \verb'[:blank:] '         \hfill (n, i)   \\
\hline \verb'\pc' &  \verb'[:cntrl:] '         \hfill (n, i)   \\
\hline \verb'\pd' &  \verb'[:digit:] '         \hfill (n, i)   \\
\hline \verb'\pg' &  \verb'[:graph:] '         \hfill (n, i)   \\
\hline \verb'\pl' &  \verb'[:lower:] '         \hfill (n, i)   \\
\hline \verb'\pp' &  \verb'[:print:] '         \hfill (n, i)   \\
\hline \verb'\pn' &  \verb'[:punct:] '         \hfill (n, i)   \\
\hline \verb'\ps' &  \verb'[:space:] '         \hfill (n, i)   \\
\hline \verb'\pu' &  \verb'[:upper:] '         \hfill (n, i)   \\
\hline \verb'\pw' &  \verb'[:word:]  '         \hfill (n, i)   \\
\hline \verb'\px' &  \verb'[:xdigit:]'         \hfill (n, i)   \\
\hline
\hline
\multicolumn{2}{|r|}{\textsl{S\textbf{n}ippets}} \\
\hline \verb'\nr'  & read code snippet          \hfill (n)\\
\hline \verb'\nw'  & write code snippet         \hfill (n, v)\\
\hline \verb'\ne'  & edit code snippet          \hfill (n)\\
\hline
\hline
\multicolumn{2}{|r|}{\textsl{\textbf{R}un}} \\
\hline \verb'\rr'  & update file, run script    		\hfill (n, i, v$^+$)\\
\hline \verb'\ra'  & set command line arguments 		\hfill (n, i)\\
\hline \verb'\rc'  & update file, check syntax$^+$  \hfill (n, i)\\
\hline \verb'\rco' & syntax check options$^+$       \hfill (n, i)\\
\hline \verb'\rd'  & start debugger$^+$             \hfill (n, i)\\
\hline \verb'\re'  & make script executable$^+$     \hfill (n, i)\\
\hline \verb'\rh'  & hardcopy buffer            		\hfill (n, i, v)\\
\hline \verb'\rs'  & settings and hotkeys       		\hfill (n, i)\\
\hline \verb'\rt'  & set xterm size$^+$             \hfill (n, i, GUI only)\\
\hline \verb'\ro'  & change output destination  		\hfill (n, i)\\
\hline
\hline 
\multicolumn{2}{|r|}{\textsl{\textbf{H}elp}} \\
\hline \verb'\hb'  & Bash manual                     \hfill (n, i) \\
\hline \verb'\hh'  & help (Bash builtins)            \hfill (n, i) \\
\hline \verb'\hm'  & manual (command line utilities) \hfill (n, i) \\
\hline \verb'\hp'  & Bash-support plugin             \hfill (n, i) \\
\hline 
\hline
\multicolumn{2}{|r|}{\textsl{Menu(s)}}\\
\hline \verb'\lbs'  & load    menus\hfill \scriptsize{(n \& GUI only)}\\
\hline \verb'\ubs'  & unload  menus\hfill \scriptsize{(n \& GUI only)}\\
\hline 
\end{tabular} \\ [5.0ex]
%%~~~~~ TABULAR :  end  ~~~~~~~~~~
\vfill
\begin{flushleft}
\hspace{5mm}$^+$ \footnotesize{Linux/U**x only}
\end{flushleft}
\end{center}
\end{document}
